<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
                 type="text/css"?>

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        title="Accessible XUL tree relations tests">

  <script type="application/javascript"
          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />

  <script type="application/javascript"
          src="../treeview.js" />

  <script type="application/javascript"
          src="../common.js" />
  <script type="application/javascript"
          src="../events.js" />
  <script type="application/javascript"
          src="../relations.js" />

  <script type="application/javascript">
  <![CDATA[
    ////////////////////////////////////////////////////////////////////////////
    // Test

    function doTest()
    {
      var treeNode = getNode("tree");

      var tree = getAccessible(treeNode);
      var treeitem1 = tree.firstChild.nextSibling;
      testRelation(treeitem1, RELATION_NODE_CHILD_OF, [tree]);

      var treeitem2 = treeitem1.nextSibling;
      testRelation(treeitem2, RELATION_NODE_CHILD_OF, [tree]);

      var treeitem3 = treeitem2.nextSibling;
      testRelation(treeitem3, RELATION_NODE_CHILD_OF, [treeitem2]);

      var treeitem4 = treeitem3.nextSibling;
      testRelation(treeitem4, RELATION_NODE_CHILD_OF, [treeitem2]);

      var treeitem5 = treeitem4.nextSibling;
      testRelation(treeitem5, RELATION_NODE_CHILD_OF, [tree]);

      var treeitem6 = treeitem5.nextSibling;
      testRelation(treeitem6, RELATION_NODE_CHILD_OF, [tree]);

      testRelation(tree, RELATION_NODE_PARENT_OF,
                   [treeitem1, treeitem2, treeitem5, treeitem6]);
      testRelation(treeitem2, RELATION_NODE_PARENT_OF,
                   [treeitem3, treeitem4]);

      // treeitems and treecells shouldn't pick up relations from tree
      testRelation(treeitem1, RELATION_LABELLED_BY, null);
      testRelation(treeitem1.firstChild, RELATION_LABELLED_BY, null);

      SimpleTest.finish();
    }

    SimpleTest.waitForExplicitFinish();
    addA11yXULTreeLoadEvent(doTest, "tree", new nsTreeTreeView());
  ]]>
  </script>

  <hbox flex="1" style="overflow: auto;">
    <body xmlns="http://www.w3.org/1999/xhtml">
      <a target="_blank"
         href="https://bugzilla.mozilla.org/show_bug.cgi?id=503727"
         title="Reorganize implementation of XUL tree accessibility">
        Bug 503727
      </a>
      <a target="_blank"
         href="https://bugzilla.mozilla.org/show_bug.cgi?id=527461"
         title="Implement RELATION_NODE_PARENT_OF">
        Bug 527461
      </a>
      <a target="_blank"
         href="https://bugzilla.mozilla.org/show_bug.cgi?id=691248"
         title="XUL tree items shouldn't pick up relations from XUL tree">
        Bug 691248
      </a>
      <p id="display"></p>
      <div id="content" style="display: none">
      </div>
      <pre id="test">
      </pre>
    </body>

    <vbox flex="1">
      <label control="tree" value="It's a tree"/>
      <tree id="tree" flex="1">
        <treecols>
          <treecol id="col" flex="1" primary="true" label="column"/>
          <treecol id="col2" flex="1" label="column2"/>
        </treecols>
        <treechildren/>
      </tree>

      <vbox id="debug"/>
    </vbox>
  </hbox>

</window>

